/*
 * @(#) MeetingService
 *
 * <br> Copyright:  Copyright (c) 2017
 * <br> @author caijinhuang
 * <br> 2017-12-18 16:07:21
 */

package com.sunsharing.sharemeeting.service.api;

import com.alibaba.fastjson.JSONObject;

import java.util.List;
import java.util.Map;

import com.sunsharing.sharemeeting.entity.Meeting;
import com.sunsharing.sharemeeting.entity.User;

public interface MeetingService {
    /**
     * 保存记录：保存会议记录
     *  参数：
     *      params: {
     *           id:'',//会议id
     *           title: '',//会议主题
     *           address: '',//会议地点
     *           presenter: '',//主持人
     *           noteMember: '',//记录人
     *           mContent: '',//会议内容
     *           //会议决议
     *           mDecision: [{
     *           decisionContent:"",//决议内容
     *           members:[],//决议执行人
     *           decisionEndTime:"",//截至日期
     *           priority:"",//决议优先级
     *           }],
     *           attenderMember: [{userId:'',state:''}],//所有参会人员
     *           },
     * @return
     */
    String saveMeeting(JSONObject params,String userId);

    List<Meeting> getMeetings(String userid,JSONObject params,String userRole);

    Meeting getMeetingDetail(String meetingId);

    /**
     * 文件保存
     * @param fileName 文件名称
     * @param meetingId 会议id
     * @param userId    用户id
     * @return
     */
    Map<String,String> uploadFile(List<String> fileName, String meetingId, String userId);

    /**
     * 添加会议备注
     * @param noteContent 备注内容
     * @param userId 用户Id
     * @param meetingId 会议Id
     */
    void addNote(String noteContent,String userId,String meetingId);

    /**
     * 会议决议进度更新
     * @param params : [{
     *     decisionId:,//决议id
     *     mineId:'',//个人决议进度情况id
     *     finished:''//决议进度完成情况，最大值为100
     * }]
     *
     * @param userId 用户Id
     */
    void updateDecisionProgress(JSONObject params,String userId);

    /**
     * 会议检索（模糊查询）
     * @param meetingTitle 会议标题
     * @return
     */
    List<Meeting> searchMeeting(String meetingTitle,String userId);

    /**
     * 会议分页查询
     * @param userid 用户Id
     * @param page 页码
     * @return
     */
    public List<Meeting> getMeetingByPage(User user, int page, JSONObject params);

    /**
     * 删除会议
     * @param meetingId 会议Id
     */
    public void delMeeting(String meetingId);

    public int delFile(String fileName,String fileId);
}
